package eu.kleinkoerkamp.core.service;

import java.io.Serializable;
import java.util.Collection;

import eu.kleinkoerkamp.core.domain.DomainObject;
import eu.kleinkoerkamp.core.repository.DefaultRepository;

public abstract class AbstractDefaultService<T extends DomainObject, ID extends Serializable> implements DefaultService<T, ID>{

	private DefaultRepository<T, ID> m_repository;
	
	public void delete(T domainObject) {
		getRepository().delete(domainObject);
		
	}

	public T getObject(ID id) {
		return getRepository().getObject(id);
	}

	public Collection<T> getObjects() {
		return getRepository().getObjects();
	}

	public DefaultRepository<T, ID> getRepository(){
		return m_repository;
	}
	
	public void setRepository(DefaultRepository<T, ID> repo) {
		m_repository =repo;
	}

	public void save(T domainObject) {
		getRepository().save(domainObject);
	}

}
